package com.mdd.front.service.comment;


import com.mdd.common.core.PageResult;
import com.mdd.common.entity.goods.GoodsComment;
import com.mdd.front.validate.comment.GoodsCommentPageParam;
import com.mdd.front.validate.comment.GoodsCommentParam;
import com.mdd.front.vo.comment.CommentParam;
import com.mdd.front.vo.comment.GoodsCommentDetailVo;
import com.mdd.front.vo.comment.GoodsCommentListVo;
import com.mdd.front.vo.goods.StatisticsGoodsCommentVo;
import com.mdd.front.vo.goods.StatisticsGoodsUserCommentVo;

import java.util.List;

/**
 * 服务评价服务接口类
 */
public interface IGoodsCommentService {

    /**
     * 服务评价列表
     *
     * @param params 搜索参数
     * @return PageResult<GoodsCommentVo>
     */
    PageResult<GoodsCommentListVo> list(GoodsCommentPageParam params);

    /**
     * 服务评价详情
     *
     * @param id 主键ID
     * @return GoodsComment
     */
    GoodsCommentDetailVo detail(Integer id);

    /**
     * 服务评价新增
     *
     * @param goodsCommentParam 参数
     */
    void add(GoodsCommentParam goodsCommentParam);

    StatisticsGoodsUserCommentVo statistics(Long userId);

    GoodsCommentDetailVo getLastCommentByGoodsId(Long goodsId);

    StatisticsGoodsCommentVo statisticsGoods(Long goodsId);

    List<GoodsComment> listByUserId(Long userId);

    List<GoodsComment> listByOrderIds(List<Long> orderIds);

    GoodsComment listByOrderId(Long orderId);

    void addGoodsComment(CommentParam params);
}
